//===- llvm/Config/AsmPrinters.def - LLVM Assembly Printers -----*- C++ -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file enumerates all of the assembly-language printers
// supported by this build of LLVM. Clients of this file should define
// the LLVM_ASM_PRINTER macro to be a function-like macro with a
// single parameter (the name of the target whose assembly can be
// generated); including this file will then enumerate all of the
// targets with assembly printers.
//
// The set of targets supported by LLVM is generated at configuration
// time, at which point this header is generated. Do not modify this
// header directly.
//
//===----------------------------------------------------------------------===//

#ifndef LLVM_ASM_PRINTER
#  error Please define the macro LLVM_ASM_PRINTER(TargetName)
#endif

#if defined(__arm__)
  LLVM_ASM_PRINTER(ARM)
  LLVM_ASM_PRINTER(AArch64)
#elif defined(__mips__)
  LLVM_ASM_PRINTER(Mips)
#elif defined(__i386__) || defined(__x86_64__)
  LLVM_ASM_PRINTER(X86)

#if defined(FORCE_BUILD_ARM)
  LLVM_ASM_PRINTER(ARM)
  LLVM_ASM_PRINTER(AArch64)
#endif

#elif defined(__aarch64__)
  LLVM_ASM_PRINTER(ARM)
  LLVM_ASM_PRINTER(AArch64)
#else
#  error Unsupported TARGET_ARCH for LLVM_ASM_PRINTER
#endif

#undef LLVM_ASM_PRINTER
